Systems and methods for creating and implementing an artificially intelligent agent or system

ABSTRACT

A system and associated methods for creating and implementing an artificially intelligent agent or system are disclosed. In at least one embodiment, a target personality is implemented in memory on an at least one computing device and configured for responding to an at least one conversational input received from an at least one communicating entity. An at least one conversational personality is configured for conversing with the target personality as needed in order to provide the target personality with appropriate knowledge and responses. For each conversational input received by the target personality, it is first processed to derive an at least one core meaning associated therewith. An appropriate raw response is determined then formatted before being transmitted to the communicating entity. Thus, the target personality is capable of carrying on a conversation, even if some responses provided by the target personality are obtained from the at least one conversational personality.

RELATED APPLICATIONS

This application claims priority and is entitled to the filing date ofU.S. provisional application Ser. No. 61/843,230, filed on Jul. 5, 2013and entitled “SYSTEMS AND METHODS FOR CREATING AND IMPLEMENTING ANARTIFICIALLY INTELLIGENT COMPUTER PERSONALITY.” The contents of theaforementioned application are incorporated by reference herein.

BACKGROUND

The subject of this patent application relates generally to artificialintelligence, and more particularly to systems and methods for creatingand implementing an artificially intelligent agent or system.

By way of background, since the development of the computer, humanbeings have sought to construct computers that are capable of thinking,learning and carrying on intelligent conversations with humans—in otherwords, “artificial intelligence.” Some development of such artificiallyintelligent computers has focused on developing computers that arecapable of conversing. Thus, a key area in developing an artificiallyintelligent computer has been developing a language that allows acomputer to process inputs received from humans and to respond with anappropriate and cogent output. One such language is known as ArtificialIntelligence Markup Language (“AIML”).

AIML is interpreted and processed by an AIML interpreter, such asArtificial Linguistic Internet Computer Entity (“ALICE”). The AIMLinterpreter is designed to receive an input from a user and determinethe correct response using knowledge encoded in AIML and stored in anAIML knowledge base. In arriving at a response for a particular input,the AIML interpreter searches a list of categories within the AIMLknowledge base. Each category contains a pattern that is linked to asingle response template. The AIML interpreter matches the user inputagainst the available patterns in the AIML knowledge base. After findinga match in a pattern, the pattern's corresponding response template isactivated and a series of actions are carried out by the AIMLinterpreter.

The known prior art methods for creating such a computer personalitygenerally consist of manually creating and editing that knowledge baseand associated response templates (often referred to as“question-response pairs” or “QR pairs”). As such, the process ofcreating a computer personality having a relatively high level ofartificial intelligence can be very labor intensive and can takethousands or even tens of thousands of hours in order to form abelievable personality. Furthermore, depending on the particular contextin which a given computer personality is to be utilized (i.e., in themedical field, engineering field, general consumer field, etc.), eachdiscrete computer personality may require a unique set of QR pairs.Thus, there is a need for systems and methods for automating the processof creating an artificially intelligent computer personality that istailored for a desired context.

There are many type of artificial neural networks known in the priorart. Forward passing neural networks faced the problem of not being ableto handle XOR logic problems. Later back propagating networks weredeveloped. Recently a problem which relates to all of these inventionshas emerged in the form of a blind spot.

Additionally, among the drawbacks found in many prior art systems is adependence upon grammar and punctuation in order to recognize elementswithin a sentence. This presents an insurmountable drawback whenattempting to adapt these systems to environments where voicerecognition rather than text is the input device. Other problems thatexist in systems representative of the current art include a lack offlexibility. Because these systems are issued as standards, they arerigid for the time period that a particular version is operational. Thismakes it very difficult for them to be adapted to changing technologicalenvironments as they are encountered. Implementing upgrades involvesissuing a new version which gives rise to versioning problems and veryoften necessitates entire systems being forced to come offline whilethey are being adapted to a newer version. Other problems include objectrepresentation and the need for a simple way to represent any objectknown or unknown which might be encountered by an artificiallyintelligent agent or system.

Many attempts to create a standardized object representation format areknown in the prior art. One of the more prominent of these is OWL. Allof them have a problem which has sparked one of the more rigorousdebates in the field of artificial intelligence: Is an artificiallyintelligent agent or system truly intelligent, or is its intelligencejust an extension of the programmer's intelligence? To some degree theyattempt to identify objects and store them according to a pre-determinedclassification set. This gives any artificially intelligent agent orsystem using the ontology what is necessarily a view of the world asseen through the eyes of the programmer which created theclassification, and further any artificially intelligent agent or systemusing the ontology would have the same view.

Furthermore, in the context of artificially intelligent systems designedfor personal use, such as on smart phones and other mobile devices, suchprior art systems typically suffer various drawbacks including limitedor no protection for personal data which would include a perceived lackof controllability by the user of how personal data is used by thecompany hosting the artificial intelligence. There have been numerousattempts to secure personal data that is acquired, stored and lateraccessed by an artificially intelligent agent or system functioning as apersonal agent. To date all of these have failed to some degree. Anothernotable problem is that when multiple users access a single device,mobile or otherwise, they are presented with a single personality. Stillanother notable problem is the fact that each device owned by a singleindividual has its own artificial intelligence—in other words, certainelements such as personal information are duplicated and are nottransferable between devices. Many attempts at developing anartificially intelligent personal agent are known in the prior art. Someof the most well known include SIRI and Cortana. These suffer fromseveral problems. One such problem is that they do not share a commoninformation base between devices. In addition, certain aspects of anartificial general intelligence (“AGI”) used for human interaction suchas voice should be consistent between devices. In other words a givenpersonal assistant should have the same voice from device to device andshould have access to and data generated on a particular device when theuser access the agent from a different device. This might best be termeda “roaming personality.” Still other problems center on authenticationmethods for personal data access.

Aspects of the present invention are directed to solving all of theseproblems by providing systems and methods for creating and implementingan artificially intelligent computer personality, as discussed in detailbelow.

Applicant(s) hereby incorporate herein by reference any and all patentsand published patent applications cited or referred to in thisapplication.

SUMMARY

Aspects of the present invention teach certain benefits in constructionand use which give rise to the exemplary advantages described below.

The present invention solves the problems described above by providing asystem and associated methods for creating and implementing anartificially intelligent agent or system residing in memory on an atleast one computing device. In at least one embodiment, a targetpersonality is implemented in memory on the at least one computingdevice and configured for interacting with an at least one communicatingentity through responding to an at least one conversational inputreceived therefrom. An at least one artificially intelligentconversational personality is also implemented in memory on the at leastone computing device, each conversational personality configured forconversing with the target personality as needed in order to provide thetarget personality with appropriate knowledge and associated responses.For each conversational input received by the target personality, theconversational input is first processed to derive an at least one coremeaning associated therewith. An appropriate raw response is determinedfor the at least one core meaning. The raw response is then formattedbefore being transmitted to the communicating entity. Thus, the targetpersonality is capable of carrying on a conversation, even if one ormore responses provided by the target personality are obtained inreal-time from the at least one conversational personality, all whiledynamically increasing the artificial intelligence of the targetpersonality.

Other features and advantages of aspects of the present invention willbecome apparent from the following more detailed description, taken inconjunction with the accompanying drawings, which illustrate, by way ofexample, the principles of aspects of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings illustrate aspects of the present invention.In such drawings:

FIG. 1 is an architecture diagram of an exemplary system for creating anartificially intelligent computer personality, in accordance with atleast one embodiment;

FIG. 2 is a flow diagram of an exemplary method for creating anartificially intelligent computer personality, in accordance with atleast one embodiment;

FIGS. 3 and 4 are schematic views of exemplary systems for creating anartificially intelligent computer personality, in accordance with atleast one embodiment;

FIG. 5 is an architecture diagram of an exemplary target personality, inaccordance with at least one embodiment;

FIG. 6 is a flow diagram of an exemplary method for extracting a coremeaning from a conversational input, in accordance with at least oneembodiment;

FIG. 7 is a flow diagram of an exemplary method for processing andresponding to an at least one conversational input, in accordance withat least one embodiment;

FIG. 8 is an illustration of an exemplary response file, in accordancewith at least one embodiment;

FIG. 9 is a flow diagram of an exemplary method for formatting andtransmitting a response to a core meaning, in accordance with at leastone embodiment;

FIGS. 10 and 11 are illustrations of exemplary object files, inaccordance with at least one embodiment;

FIG. 12 is a flow diagram of an exemplary method for processing anobject, in accordance with at least one embodiment; and

FIG. 13 is a flow diagram of an exemplary method for dynamically andsecurely personalizing an exemplary computer personality, in accordancewith at least one embodiment.

The above described drawing figures illustrate aspects of the inventionin at least one of its exemplary embodiments, which are further definedin detail in the following description. Features, elements, and aspectsof the invention that are referenced by the same numerals in differentfigures represent the same, equivalent, or similar features, elements,or aspects, in accordance with one or more embodiments.

DETAILED DESCRIPTION

Turning now to FIG. 1, there is shown an architecture diagram of anexemplary system 20 for creating an artificially intelligent agent orsystem, in accordance with at least one embodiment. The system 20comprises, in the exemplary embodiment, a target personality 22, an atleast one conversational personality 24, a teacher personality 26, and adata server 28, each residing in memory 30 on an at least one computingdevice 32. It should be noted that the term “memory” is intended toinclude any type of electronic storage medium (or combination of storagemediums) now known or later developed, such as local hard drives, RAM,flash memory, external storage devices, network or cloud storagedevices, etc. Furthermore, the various components of the system 20 mayreside in memory 30 on a single computing device 32, or may separatelyreside on two or more computing devices 32 in communication with oneanother. The term “computing device” is intended to include any type ofcomputing device now known or later developed, such as desktopcomputers, smartphones, laptop computers, tablet computers, etc.Additionally, the means for allowing communication between the variouscomponents of the system 20, when not residing on a single computingdevice 32, may be any wired- or wireless-based communication protocol(or combination of protocols) now known or later developed. It shouldalso be noted that while the term “personality” is used throughout, eachof the terms “agent” and “system” may be used interchangeably with theterm “personality,”—and vice versa—depending in part on the context inwhich the system and associated methods are utilized.

With continued reference to FIG. 1, each conversational personality 24is a computer personality that has been created previously, either bythe present system 20 or through other means, now known or laterdeveloped. As discussed further below, the at least one conversationalpersonality 24 is configured for conversing with the target personality22 as needed in order to provide the target personality 22 withappropriate knowledge and associated responses. Depending on the contextin which the system 20 is to be used, a given conversational personality24 may possess a general knowledge base and associated responses (forgeneral conversations), or it may possess a targeted or specificknowledge base and associated responses. For instance, if the targetpersonality 22 is to be used in the context of functioning as aphysician's assistant, the at least one conversational personality 24would preferably possess a medical knowledge base and associatedresponses. In another example, if the target personality 22 is to beused in the context of functioning as a hospital administrator, at leastone conversational personality 24 would preferably possess a medicalknowledge base and associated responses, while another conversationalpersonality 24 would preferably possess a business and/or administrativeknowledge base and associated responses. In at least one such embodimentand where appropriate, the target personality 22 and/or at least oneconversational personality 24 is provided access to one or moresupplemental data sources (not shown)—such as medical dictionaries,Internet search engines, encyclopedias, etc.—for selectively increasingthe knowledge base of the target personality 22 and/or conversationalpersonality 24. Preferably, the accuracy of information obtained fromany such supplemental data sources would be independently verified bythe system 20 before being utilized.

The teacher personality 26 is yet another computer personality that hasbeen created previously, either by the present system 20 or throughother means, now known or later developed. As discussed further below,the teacher personality 26 is pre-programmed with a set ofconversational inputs 34 consisting of various statements and/orinterrogatories geared toward the particular type of target personality22 to be created. Thus, the teacher personality 26 is configured forconversing with the target personality 22 (i.e., transmitting theconversational inputs 34 to the target personality 22) so that thetarget personality 22 may learn how to appropriately respond to theconversational inputs 34 through interacting with and receivingappropriate responses from the at least one conversational personality24.

Thus, as illustrated in the flow diagram of FIG. 2, the exemplary methodfor creating an artificially intelligent computer personality comprisesthe steps of: choosing a desired personality type for the new targetpersonality 22 to be created (200); based on that desired personalitytype, selecting one or more appropriate conversational personalities 24(202); selecting an appropriate teacher personality 26 (204); andteaching the target personality 22 by allowing it to converse with theteacher personality 26 and selectively obtain appropriate responses fromthe at least one conversational personality 24 (206). A schematic viewof this interoperability between each of the teacher personality 26,target personality 22 and conversational personalities 24, in accordancewith at least one embodiment, is shown in FIG. 3. As illustrated in theschematic view of FIG. 4, once adequately taught, or even during theteaching process, a user 36 may be substituted for the teacherpersonality 26 for general interactions with the target personality 22.Thus, generally speaking, in at least one embodiment, the system 20allows an at least one communicating entity—i.e., user 36, teacherpersonality 26, etc.—to selectively interact with the target personality22 by receiving conversational inputs 34 from such communicating entity.

Referring now to the architecture diagram of FIG. 5, in the exemplaryembodiment, the target personality 22 utilizes an optimized clusteringneural net by comprising a pre-processor 38, a logic processor 40, and apost-processor 42. As discussed further below, the pre-processor 38 isconfigured for processing conversational inputs 34 received from theuser 36 (or the teacher personality 26), the logic processor 40 isconfigured for determining an appropriate raw response 44 to eachconversational input 34 (i.e., a response having not yet been formattedfor transmission to the user 36 or teacher personality 26) andperforming any handoff tasks triggered by a particular input, and thepost-processor 42 is configured for properly formatting and transmittinga response 46 to the user 36 (or the teacher personality 26) for eachconversational input 34. It should be noted that, in at least oneembodiment, each conversational personality 24 comprises these samecomponents. Furthermore, in at least one embodiment and as discussedfurther below, each of the pre-processor 38, logic processor 40 andpost-processor 42 is comprised of one or more specific purpose neuron(“SPN”), or modules, each SPN designed to perform a specificpre-determined task.

As mentioned above, the pre-processor 38 is configured for processingconversational inputs 34 received from the user 36 (or the teacherpersonality 26). In other words, the pre-processor 38 pares eachconversational input 34 down to a core meaning 48, in order to pass thatcore meaning 48 along to the logic processor 40 for determining anappropriate response. Thus, the pre-processor 38 does not parse text forlanguage elements in this particular embodiment; but rather, it breaksdown conversational inputs 34 in order to determine their respectivecore meanings 48. For example, the conversational inputs 34, “How areyou,” “How are you feeling,” “How are you feeling, Vincent,” and “Howare you doing,” are all interrogatories that map to a single coremeaning 48 of, “how are you.” In a bit more detail, and as illustratedin the flow diagram of FIG. 6, in the exemplary embodiment, upon receiptof a conversational input 34 (600), the pre-processor 38 first removesany and all punctuation from the conversational input 34 (602). Thisallows the target personality 22 to respond in exactly the same fashionas when converting speech to text, and also allows the targetpersonality 22 to be able to detect and respond to inflection. Next, thepre-processor 38 removes any trivial language (i.e., language in theconversational input 34 that is determined to have no real bearing onthe core meaning 48) (604). For example, the conversational input 34,“Hey, Vince, how are you feeling” contains the language, “Hey, Vince”which could be considered trivial as having no real bearing on the coremeaning 48 of, “how are you.” In at least one embodiment, thepre-processor 38 is also configured for recognizing variations of aparticular core meaning 48 in the conversational input 34 and mappingthose variations to (i.e., substituting those variations with) theappropriate core meaning 48 (606). For example, the conversational input34, “What's your name” would be mapped to (i.e., substituted with) thecore meaning 48, “what is your name.” In another example, theconversational input 34, “Howya doin” would be mapped to the coremeaning 48, “how are you.” In addition to mapping strings of characters,in at least one embodiment, the pre-processor 38 is configured formapping numbers as well—i.e., mapping character-based numbers (ex.,“two”) to their numerical representations (ex., “2”) or vice versa.

In at least one such embodiment, the pre-processor 38 maintains arelational list of functions in an XML document, with each functioncontaining a unique conversational input 34 along with the core meaning48 to which that conversational input 34 should be mapped. Thus, for agiven conversational input 34 in such an embodiment, the pre-processor38 simply iterates through the list of functions until the matchingconversational input 34 is found, at which point the associated functionreturns the corresponding core meaning 48. As such, this form of fuzzystring substitution allows the pre-processor 38 to map a wide range ofconversational inputs 34 to their appropriate core meanings 48. In afurther such embodiment, the fuzzy string substitution algorithm iscapable of accepting and returning variables, which allows thepre-processor 38 to pass to the logic processor 40 dynamically createdcore meanings 48 rather than only static core meanings 48. For example,if the conversational input 34 is, “If a car is traveling 60 miles anhour, how far will it travel in 2 hours,” the pre-processor 38 wouldfirst iterate through the list of functions until the matching staticportion of the conversational input 34 is found, at which point theassociated function would return the appropriate core meaning 48containing the variable portion of the conversational input 34. Thus, inthe above example, the core meaning 48 would be, “solve x=60*2.” Infurther embodiments, other methods for accomplishing this particularfunctionality, now known or later developed, such as a lookup table ordatabase, may be substituted.

In a still further embodiment, the pre-processor 38 contains aself-organization module configured for catching core meanings 48 thatmight be initially missed due to the wording of a particularconversational input 34. For example, where the conversational input 34is, “What time is it buddy,” the pre-processor 38 may initially miss thecore meaning 48 of “what time is it” due to the inclusion of the word“buddy” at the end of the sentence. In such a scenario, thepre-processor 38 would cause the target personality 22 to initiallyrespond by asking the user 36 (or teacher personality 26) to re-phrasetheir conversational input 34. For example, the target personality 22may respond with, “Sorry, I didn't understand that,” or, “Can you pleasere-phrase that.” Upon receipt of a re-phrased conversational input 34,and assuming the pre-processor 38 is able to derive the appropriate coremeaning 48 from that conversational input 34, the pre-processor 38 isthen able to create a new function that maps the new conversationalinput 34 that was initially missed to the appropriate core meaning 48,so as not to miss it again in the future. In the exemplary embodiment,the pre-processor 38 accomplishes this by taking the conversationalinput 34 for the function that worked and performing a differentialmatch against the conversational input 34 that initially failed. Thepre-processor 38 then takes the portion of the conversational input 34that did not match and, from a pool of regular expression elements, addsthat portion to the pattern that matched the subsequent conversationalinput 34. In further embodiments, other methods for accomplishing thisparticular functionality, now known or later developed, may besubstituted.

Again, once the core meaning 48 has been derived, the pre-processor 38passes the core meaning 48 to the logic processor 40 (608).

As mentioned above, the logic processor 40 is configured for determiningan appropriate response to the core meaning 48 of each conversationalinput 34. In the exemplary embodiment, as illustrated in the flowdiagram of FIG. 7, after the pre-processor 38 has received aconversational input 34 (700) and extracted the at least one coremeaning 48 therefrom (702), the logic processor 40 determines whether afirst of the at least one core meaning 48 contains any objects (704), asdiscussed further below—if so, the objects are processed (1200), as alsodiscussed further below. The logic processor then determines whether thefirst of the at least one core meaning 48 is new, or whether it hasencountered that particular core meaning 48 before (706).

In a bit more detail, the logic processor 40 is configured for treatingeverything as an object. This applies to speech as well. For example,the term “Hello” would be considered an object as would the term“Vincent.” The logic processor 40 is able to combine objects and, assuch, can respond to core meanings 48 that it has never beforeencountered or has been programmed to handle, as discussed furtherbelow. Thus, in the above example, the phrase, “Hello Vincent” would beconsidered a further object.

In the exemplary embodiment, the logic processor 40 consists of variousmodules that are loaded and arranged dynamically depending on theparticular core meaning 48 that it is to process and/or otherenvironmental variables that might be relevant to the particular coremeaning 48 that it is to process (i.e., time of day, geographic locationof the user 36, etc.). Thus, each module is preferably created as adynamic link library and represents certain base functions. In theexemplary embodiment, a module list is stored as an XML document andcontains the location of each module's dynamic link library along with adescription of each module's functions. The order of the modulesrepresents the order in which they are to be called by the logicprocessor 40. The list is also preferably self-configurable, meaningthat certain conditions present in a given core meaning 48 can cause orallow the logic processor 40 to order, re-order, or modify the list offunctions. For example, an emergency condition present in the coremeaning 48 can cause the logic processor 40 to remove the emotionalresponse module from the list, thereby causing the logic processor 40 tofunction purely analytically. In another example, an intrusion detectionpresent in the core meaning 48 can cause the logic processor 40 toremove the application and system function modules from the list,thereby preventing an unauthorized user 36 from accessing applicationand system functions. In at least one embodiment, the pre-processor 38is configured for dynamically configuring the module list, based on thecontent of a given core meaning 48, so that only modules which areneeded to process and respond to that core meaning 48 are loaded intothe logic processor 40, thereby reducing overall processing time.

In at least one embodiment, the logic processor 40 provides an at leastone anomalous speech pattern detection module. In one such embodiment,the anomalous speech pattern detection module enables the logicprocessor 40 to detect whether or not the core meaning 48 contains agreeting such as, “Hello.” From this, the logic processor 40 is able toautomatically extrapolate that the core meaning 48, “Hello there” isalso a greeting and would thus add that core meaning 48 to the list ofrecognized greetings. In another such embodiment, the anomalous speechpattern detection module enables the logic processor 40 to detectwhether a core meaning 48 has been repeated by the user 36 (i.e.,whether the user 36 has asked the same question or input the samestatement more than once, even if phrased differently each time).

In the exemplary embodiment, the logic processor 40 also provides aresponse module configured for determining the appropriate raw response44 to a given core meaning 48. In a bit more detail and with continuedreference to FIG. 7, the response module of the logic processor 40,again, determines whether the core meaning 48 has been encounteredbefore (706). In at least one such embodiment, as shown in the exemplaryillustration of FIG. 8, each core meaning 48 is stored in a separateresponse file 50 along with the corresponding raw response 44. Theresponse files 50 are stored in the system 20, either within the dataserver 28 or in another database stored elsewhere in memory 30. Itshould be noted that, for purely illustrative purposes, the exemplaryresponse file 50 is shown as an XML file; however, the scope ofpotential implementations of the system 20 should not be read as beingso limited. With continued reference to FIG. 8, in at least oneembodiment, each response file 50 contains further details related tothe associated core meaning 48 and raw response 44, including but notlimited to a mood value 52, a weight value 54, a creation date 56, acreator name 58, an edit date 60, and an editor name 62.

The mood value 52 indicates the type of emotion that is to accompany theraw response 44 to the core meaning 48 of a given response file 50. Forexample, in the exemplary embodiment, a value of “0” is intended toindicate “normal,” a value of “1” is intended to indicate “happy,” avalue of “2” is intended to indicate “angry,” a value of “3” is intendedto indicate “distracted,” and a value of “4” is intended to indicate“sad.” Certainly, in further such embodiments, the specific types ofemotions (or moods) and associated mood values 52 may vary. Relatedly,the weight value 54 indicates the amount or strength of appropriate moodthat is to accompany the raw response 44 associated with the coremeaning 48 of a given response file 50. For example, in the exemplaryembodiment, a value of “0” is intended to indicate a mild form of theassociated mood, while a value of “10” is intended to indicate a verystrong form of the associated mood. The use of the mood value 52 andweight value 54 is discussed further below.

The creator name 58 indicates the entity which originally added thegiven response file 50 to the system 20. This can include manualadditions by a user 36, automated additions by a conversationalpersonality 24, or automated additions by the target personality 22.Relatedly, the creation date 56 indicates the date on which the givenresponse file 50 was added to the system 20. Similar to the creator name58, the editor name 62 indicates the entity which most recently editedthe given response file 50, while the associated edit date 60 indicatesthe date on which such recent changes were made.

In at least one embodiment, a separate database containing informationrelated to users 36 is maintained, and a rank is assigned to each user36. As such, if multiple raw responses 44 (i.e., multiple response files50) are found containing the same core meaning 48, the raw response 44having the highest rank (i.e., the raw response 44 having been createdor edited by the user 36 having the highest ranking) is selected. Thisallows the target personality 22 to always override any response file 50which is created or edited by an entity with a relatively lower rank.Additionally, the system 20 preferably tracks the number of times aparticular entity has had its original response file 50 edited by a user36 with a higher ranking. In this way, reliability of input can beestablished. In essence then, better sources' response file 50 contentbegin to be recognized as more reliable than other sources, and are ableto be favored. This also allows the target personality 22 to “mature” bycreating a “takeover point,” such as, for example, by constructing analgorithm which resets the assigned value of the “parent” below theassigned value of the target personality 22 when the number ofsynthesized or learned responses that do not have to be correctedexceeds the number of synthesized responses that are corrected.

Referring again to FIG. 7, in the exemplary embodiment, the responsemodule of the logic processor 40 determines whether the core meaning 48has been encountered before (706) by iterating through each of theresponse files 50 (which are preferably sorted in a logical manner, suchas alphabetically by core meaning 48) to try and find that particularcore meaning 48. If the core meaning 48 is found in one or more of theresponse files 50, the best associated raw response 44 is accessed (708)and passed along to the post-processor 42 for formatting (710) andtransmission to the user 36 (or teacher personality 26) (712), asdiscussed further below. If the core meaning 48 is not found in any ofthe response files 50, then it has not been encountered before and sothe logic processor 40 then transmits the core meaning 48 to one or moreof the conversational personalities 24 in order to obtain an appropriateraw response 44 therefrom (714). Upon receipt of one or more potentialraw responses 44 from the conversational personalities 24 (716), thelogic processor 40 determines which potential raw response 44 is best(718) using one or more of the methods described above. Additionally, orin the alternative, the logic processor 40 may determine the bestpotential raw response 44 by loading each potential raw response 44 intoa dataset, then iterating through them so as to try and match portionsof each potential raw response 44 to raw responses 44 that have alreadybeen stored in other response files 50. A new response file 50 iscreated for the best raw response 44, along with the associated coremeaning 48, and the response file 50 is added to the system 20 (720).The logic processor 40 then determines whether the raw response 44contains any objects (722), as discussed further below—if so, theobjects are processed (1200), as also discussed further below. The rawresponse 44 is then passed along to the post-processor for formatting(710) and transmission to the user 36 (or teacher personality 26) (712),as discussed further below.

With continued reference to FIG. 7, if additional core meanings 48 arepresent in the conversational input 34 (724)—for example, if theconversational input 34 is, “Hello, what is your name and where are youlocated?”—the logic processor 40 performs the above described steps foreach core meaning 48 (i.e., “hello,” “what is your name,” and “where areyou located”), so as to obtain a raw response 44 to each core meaning48. Furthermore, these steps are repeated for each conversational input34 transmitted by the user 36 (or teacher personality 26) until theconversation with the target personality 22 is ended (726). In this way,even with a minimum number of pre-loaded response files 50 in the system20, a conversation can be carried on by the target personality 22 whichwill appear to have come directly from the target personality 22, evenif unknown raw responses 44 have been loaded in real-time from one ormore conversational personalities 24; all the while, dynamicallyincreasing the number of response files 50 (and, thus, the artificialintelligence) of the target personality 22.

As mentioned above, in the exemplary embodiment, the logic processor 40is configured for treating everything as an object. This becomes mostuseful where a given conversational input 34 or response 46 is notentirely static, but rather contains one or more variables. In a bitmore detail, the logic processor 40 is configured for representing anyobject and/or any variation of such objects using two object properties:taxonomy 64 and attributes 66. Furthermore, in at least one embodiment,the logic processor 40 divides objects into two categories: entities andevents. In at least one further embodiment, the logic processor 40 isconfigured for representing any object and/or any variation of suchobjects using three object properties: taxonomy 64, attributes 66 andevents. Either way, this construction is universal and applies to anyobject now known or later developed or discovered, such that that it isnever necessary to re-program the logic processor 40 with additionaldata types. Additionally, this method allows the logic processor 40 tolearn by natural language processing, as there is no need topre-classify data as it is encountered, given that a member of anytaxonomy 64 of a particular object can also be classified as anattribute 66 of another object. As shown in the exemplary illustrationof FIG. 10, each object is preferably stored in a separate object file68 in the system 20, either within the data server 28 or in anotherdatabase stored elsewhere in memory 30. It should be noted that, forpurely illustrative purposes, the exemplary object file 68 is shown asan XML file; however, the scope of potential implementations of thesystem 20 should not be read as being so limited.

With continued reference to FIG. 10, in addition to a taxonomy 64 andattributes 66, each object file 68 has a unique object name 70. Forexample, the instance of the exemplary object file 68 shown in FIG. 10has an object name 70 of “dog.” Additionally, the taxonomy 64 of theobject file 68 contains details that inform the logic processor 40 ofthe fact that the “dog” object is a living animal of the canine type,while the attributes 66 of the object file contain details that informthe logic processor 40 of the fact that the “dog” object has four legs,no wings, and two eyes. As the logic processor 40 receives furtherdetails related to the “dog” object, it dynamically adds those furtherdetails to the taxonomy 64 and attributes 66 of the associated objectfile 68. For example, should the logic processor 40 receive the coremeaning 48, “a dog has teeth,” the logic processor 40 would access theassociated object file 68 and add, “teeth=true” to the attributes 66. Asshown in the flow diagram of FIG. 12, in the event the logic processor40 receives details related to a new object—i.e., receives an objectname 70 (1202) that does not exist in any of the object files 68residing in the system 20 (1204)—either through a core meaning 48 or araw response 44 received from one or more of the conversationalpersonalities 24, the logic processor 40 creates a new object file 68for the new object name 70 (1206) and populates the taxonomy 64 and/orattributes 66 with any relevant information contained in the coremeaning 48 or raw response 44 (1208); otherwise, again, if the objectalready exists, logic processor 40 simply dynamically adds any newdetails to the taxonomy 64 and attributes 66 of the associated objectfile 68 (1210). Additionally, where it is determined that the new objectname 70 is a subset of a pre-existing object, the logic processor 40populates the taxonomy 64 and/or attributes 66 of the new object file 68with all relevant taxonomy 64 and attributes 66 of the relatedpre-existing object file 68. For example, as shown in the exemplaryillustration of FIG. 11, upon the logic processor 40 receiving the coremeaning 48, “I have a dog named Fido,” and determining that no objectfile 68 currently contains the object name 70, “fido,” the logicprocessor 40 creates a new object file 68 containing that object name70. Additionally, because the core meaning 48 states that Fido is a dog,the logic processor 40 automatically populates the taxonomy 64 andattributes 66 of the new “fido” object file 68 with the taxonomy 64 andattributes 66 of the “dog” object file 68. Thus, the number of cyclesrequired to process a core meaning 48 such as, “Is Fido alive?” isgreatly reduced as there is no need to search for the object name 70“fido,” discover that “fido” is a dog, then look up the object name 70“dog” to determine whether it is a living being—instead, the logicprocessor 40 simply looks up the object name 70 “fido.”

In addition to treating all entities and events mentioned in coremeanings 48 and/or raw responses 44 as objects, the logic processor 40also treats users 36 as objects, in at least one embodiment. In a bitmore detail, upon the user 36 (or the teacher personality 26) beginninga conversation with the target personality 22, the logic processor 40(via the post-processor 42) prompts the user 36 for their name andsubsequently checks for an object file 68 containing that object name 70(and creates a new object file 68 if it is determined that one does notalready exist—i.e., if the user 36 is new). For new users 36, the logicprocessor 40 may also be configured for prompting the user 36 foradditional information—such as address, age, gender, likes or dislikes,etc.—in order to populate the taxonomy 64 and/or attributes 66 of theassociated object file 68. Alternatively, where the logic processor 40determines that an object file 68 already exists for the user 36, thelogic processor 40 may be configured (in at least one embodiment) toprompt the user 36 to provide correct answers to questions related tothe taxonomy 64 and/or attributes 66 contained in the user's 36 objectfile 70, in order to verify the identity of the user 36. In further suchembodiments, the logic processor 40 may be configured for prompting theuser 36 to provide details about past conversations with the targetpersonality 22 in order to verify the identity of the user 36.

In at least one such embodiment, as illustrated in the flow diagram ofFIG. 13, this means for verifying the identity of the user 36 isutilized for dynamically personalizing the communications between thetarget personality 22 and the user 36 by accessing the informationsecurely stored in the object file 68 associated with the user 36; thus,creating somewhat of a “roaming” artificial intelligence. In a bit moredetail, as the logic processor 40 receives new information related tothe user 36 (as discussed above), that information is encrypted using aunique encryption\decryption key. This is critical to preventing “man inthe middle” or “replay” attacks against the system 20 where voice ortext data is intercepted and used to access the system 20. Upon the sameuser 36 subsequently initiating a new conversation with the targetpersonality 22, the logic processor 40 verifies the identity of the user36 by prompting the user 36 for their name or some other piece ofidentifying information (1300), then checks for the existence of anencryption\decryption key associated with that particular user 36 in thesystem 20 (1302). If found, the key is then used to decrypt the personalinformation that has been encrypted (1304) in order to utilize thatinformation as appropriate while communicating with the user 36 (1306).If no key is found, the logic processor 40 denies access to the user 36(1308) and the personal information is not decrypted. Alternatively, ifthe user 36 is communicating with the target personality 22 viavoice-based conversational inputs 34 (1310), rather than text-basedconversational inputs 34, the logic processor 40 performs a voice printanalysis as a further verification step (1312). In still furtherembodiments, additional checks are performed to verify the identity ofthe user 36, including but not limited to facial recognition analysisand checking the last known GPS-based location of the user 36 (orcomputing device in the possession of the user 36) against the currentlocation. If any of these checks fail, the logic processor 40 initiatesa question\answer challenge-response sequence. This involves asking theuser 36 randomly generated questions which contain information that onlythe user 36 would know (1314), as discussed above, then determiningwhether the user's 36 responses are correct (1316). This process may goon until the identity of the user 36 is either confirmed or rejected.Once this multi-part authentication process has been successfullynegotiated, data such as personal and other sensitive informationassociated with the user 36 is made available to the user 36 in a globalfashion (1304).

In at least one embodiment, the system 20 maintains an offset valuerepresenting the probability that various credentials are fraudulent.This offset is produced by gathering various intelligences related touser behavior and world view statistics which are then fed into aBayesian probability function. These parameters would include but not belimited to the type and manufacturer of software packages installed onthe user's computing devices, the number of times that flaws have beenexposed in these software packages, verified news items indicatingcurrent ongoing risks, the amount of time the user spends on theInternet, etc. This offset is called recursively as the L and the Mvariables (which are then the M and the L in the next round) in theprobability function resulting in a final probability that all of thevarious “pass/fail” elements were compromised. Another embodiment wouldsimply force a logoff at a fail. Native probability elements areelements which are probability based having no capability other thanthreshold passing wherein they might be used in “pass/fail” functions.These might include but would not be limited to location tracking,facial recognition, voice recognition, etc. In at least one suchembodiment, these scores would be summed, and the result would beinversely relational to the offset generated and maintained by thesystem 20.

Use of the GPS-based location of the user 36 (or computing device in thepossession of the user 36) can be beneficial in other contexts besidesauthentication, including instances of the system 20 designed tofunction as a personal assistant (i.e., roaming artificialintelligence). For example, a user 36 who is driving may create agrocery list by communicating with the target personality 22 of thesystem 20 via a computing device installed in the automobile. This datais then stored in the system 20 either by a periodic update process orby a direct command. When the user 36 exits their vehicle and enters thestore, the same target personality 22 with access to the grocery list isautomatically made available on their smart phone or other mobilecomputing device. Similarly the data from purchases made by the user 36can be scanned or otherwise entered into the smart phone or other mobilecomputing device and made available to a computing device (incommunication with the system 20) installed in the home of the user 36.

When used as an intelligent agent, in at least one embodiment, thesystem 20 utilizes a “split horizon” architecture arranged in a clientserver model. Since the target personality 22 exists on the client aswell as the server in such an embodiment, modules specific to functionsthat are performed client side can be created and installed. Certainbasic logic and communication functions can also exist on the clientside so that if contact with the server is broken, the client will stillfunction albeit with a lessened degree of functionality. Since theoptimized clustering neural network employed by the system 20 (in atleast one embodiment) allows for multiple linear chains to be run inparallel, a second chain can be run which updates information such asGPS data from a mobile device and pushes it to the server. Voice andother data can be generated on the server side, and returned to theclient. This allows for consistent voice synthesis when the targetpersonality 22 roams from device to device. This allows for true AGIwith consistent voice content unlike technologies in the prior art whichrely on recorded speech. In another embodiment, the host server of thesystem 20 might be interfaced with a commercial voice server technology.

As mentioned above, the post-processor 42 is configured for properlyformatting and transmitting the response 46 to the user 36 (or theteacher personality 26) for each conversational input 34. As illustratedin the flow diagram of FIG. 9, in the exemplary embodiment, upon receiptof the raw response 44 (900), the post-processor 42 converts the rawresponse 44 into the properly formatted response 46 by first addingproper capitalization and punctuation (if not already included in theraw response 44 by virtue of the data contained in the associatedresponse file 50) (902). In one such embodiment, data is maintained inthe system 20 regarding common first names, surnames, country and statenames, and other words which are traditionally capitalized. Thepost-processor 42 parses the raw response 44 into individual words,iterates through these words, and if a known name or other commonlycapitalized word is encountered, the first letter is capitalized. Infurther embodiments, other methods for accomplishing this particularfunctionality, now known or later developed, may be substituted.

As also mentioned above, in at least one embodiment, each response file50 contains a mood value 52 and a weight value 54 related to theassociated core meaning 48 and raw response 44. Thus, where such detailsare provided, the post-processor 42 factors them in during theformatting process and modifies the raw response 44 accordingly (904).This is most commonly used where the conversational input 34 (and, thus,the core meaning 48) is seeking to obtain the target personality's 22opinion of or emotional reaction to (i.e., whether the targetpersonality 22 likes or dislikes) the subject matter of the core meaning48. In the exemplary embodiment, this is accomplished by eitheraggregating or differentiating the respective weight values 54 of the atleast one mood value 52 associated with the raw response 44 so as toarrive at a final emotional reaction to incorporate into the formattedresponse 46.

As mentioned above, in at least one embodiment, the target personality22 is provided access to one or more supplemental data sources—such asmedical dictionaries, Internet search engines, encyclopedias, etc.—forselectively increasing the knowledge base of the target personality 22.Such supplemental data sources may also be utilized by the logicprocessor 40 to confirm the accuracy or correctness of an assertive coremeaning 48, or to seek the answer to an inquisitive core meaning 48.Because such searching may take time, in the exemplary embodiment, thelogic processor 40 utilizes multithreaded processing so as to not delaythe conversation between the target personality 22 and the user 36 (orteacher personality 26). In a bit more detail, upon the logic processor40 receiving such a core meaning 48 that requires research, the logicprocessor first transmits a non-committal response to the post-processor42 (such as, “let me get back to you on that”) and allows theconversation to continue. Meanwhile, the logic processor 40 concurrentlyinitiates a second thread for performing the necessary research. Uponconcluding the research, the logic processor 40 interrupts theconversation and transmits the researched response to the post-processor42 for communication to the user 36.

In certain embodiments, where the target personality 22 has access toone or more sensory input devices, such as cameras or microphones, thepost-processor 42 may factor in those details during the formattingprocess and further modify the raw response 44 accordingly (906).

Once the raw response 44 is converted into the properly formattedresponse 46, the formatted response 46 is transmitted to the user 36 (orteacher personality 26) (908).

Referring again to FIG. 4, during actual use of the system 20 (i.e.,during a conversation between the user 36 and the target personality22), in at least one embodiment, the data server 28 is pre-loaded withinformation related to the user 36, allowing relevant personal detailsto be included as variables in certain raw responses 44. For example,upon receipt of the conversational input 34, “Who was Richard Nixon,”the raw response 44 could be, “Richard Milhaus Nixon was the 37thPresident of the United States and served in office from 1969 to1974—roughly 14 years before you were born.” Populating the data server28 with such information could be accomplished in any number of ways,including but not limited to having the user 36 complete a questionnaireprior to interacting with the target personality 22 for the first time,having the user 36 speak (or type) about themselves briefly at thebeginning of the first conversation with the target personality 22,scanning personal history documents related to the user 36, etc.

In at least one embodiment, within the data server 28 is also stored aseparate dataset that is maintained by the system 20 and contains anatural language representation of each topic that was presented by theuser 36 (or teacher personality 26) via conversational inputs 34. Inthis way, the target personality 22 is able to recall previousconversational inputs 34. This dataset can be edited manually or thetarget personality 22 can synthesize responses by using regularexpressions to compare existing natural language topical responses toexisting raw responses 44 and replacing variables. When queried as totopic, the target personality 22 looks for the matching core meaning 48in a response file 50, and returns the topical raw response 44.

It should be noted that, in at least one alternate embodiment, thepre-processor 38 may be omitted from the target personality 22; thus,rather than first extracting the core meaning 48 from a givenconversational input 34, the logic processor 40 would simply create andstore a separate response file 50 for each unique conversational input34 encountered (i.e., rather than only creating and storing a separateresponse file 50 for each unique core meaning 48). Similarly, in atleast one further alternate embodiment, the post-processor 42 may beomitted from the target personality 22; thus, rather than formattingeach raw response 44 as provided by the associated response file 50, theresponse files 50 themselves would contain properly formatted responses46.

Aspects of the present specification may also be described as follows:

1. A method for creating and implementing an artificially intelligentagent residing in memory on an at least one computing device andconfigured for taking appropriate action in response to an at least oneconversational input, the method comprising the steps of: implementing atarget personality of the agent in memory on the at least one computingdevice; implementing an at least one artificially intelligentconversational personality in memory on the at least one computingdevice, each conversational personality configured for conversing withthe target personality as needed in order to provide the targetpersonality with appropriate knowledge and associated responses;allowing an at least one communicating entity to interact with thetarget personality by receiving the at least one conversational inputfrom the communicating entity; and for each conversational inputreceived by the target personality: processing the conversational inputto derive an at least one core meaning associated therewith; determiningan appropriate raw response for the at least one core meaning;formatting the raw response; and transmitting the formatted response tothe communicating entity; whereby, the target personality of the agentis capable of carrying on a conversation, even if one or more responsesprovided by the target personality are obtained in real-time from the atleast one conversational personality, all while dynamically increasingthe artificial intelligence of the target personality.

2. The method according to embodiment 1, further comprising the stepsof: choosing a desired personality type for the target personality; andselecting one or more appropriate conversational personalities withwhich the target personality should communicate, based on the desiredpersonality type for the target personality.

3. The method according to embodiments 1-2, wherein the step of allowingan at least one communicating entity to interact with the targetpersonality further comprises the steps of: implementing an at least oneteacher personality in memory on the at least one computing device, eachteacher personality configured for transmitting to the targetpersonality a set of pre-defined conversational inputs so that thetarget personality may learn how to appropriately respond to theconversational inputs through interacting with and receiving appropriateresponses from the at least one conversational personality; andselecting an appropriate teacher personality with which the targetpersonality should communicate, based on the desired personality typefor the target personality.

4. The method according to embodiments 1-3, wherein the step of allowingan at least one communicating entity to interact with the targetpersonality further comprises the step of allowing an at least one humanuser to selectively transmit to the target personality the at least oneconversational input.

5. The method according to embodiments 1-4, wherein the step ofprocessing the conversational input further comprises the steps of:maintaining a relational list of all conversational inputs encounteredby the target personality along with the core meanings associated witheach such conversational input; removing any punctuation from theconversational input; removing any language from the conversationalinput that is determined to have no bearing on the core meaning; andmapping the conversational input to the associated core meaning storedin the relational list.

6. The method according to embodiments 1-5, wherein the step ofdetermining an appropriate raw response further comprises the steps of,for each core meaning associated with the conversational input: upondetermining that the core meaning contains an at least one object,processing said at least one object; maintaining a set of response filescontaining all core meanings encountered by the target personality alongwith the raw responses associated with each such core meaning;determining whether the core meaning is new or whether the core meaninghas been encountered before by the target personality; upon determiningthat the core meaning has been encountered before: mapping the coremeaning to the at least one associated raw response stored in theresponse files; and determining which of the at least one associated rawresponse is the most appropriate; and upon determining that the coremeaning is new: transmitting the core meaning to the at least oneconversational personality; receiving an at least one raw response fromthe conversational personality; determining which of the at least oneraw response is the most appropriate; adding the core meaning andassociated raw response deemed most appropriate to the response files;and upon determining that the raw response contains an at least oneobject, processing said at least one object.

7. The method according to embodiments 1-6, further comprising the stepsof: storing in the set of response files a mood value associated witheach raw response, said mood value indicating the type of emotion thatis to accompany the associated raw response; and modifying the rawresponse to reflect the type of emotion defined by the mood value.

8. The method according to embodiments 1-7, further comprising the stepsof: storing in the set of response files a weight value associated withthe mood value of each raw response, said weight value indicating thestrength of appropriate mood that is to accompany the associated rawresponse; and modifying the raw response to reflect the strength ofappropriate mood defined by the weight value.

9. The method according to embodiments 1-8, wherein the step ofdetermining which of the at least one raw response is the mostappropriate further comprises the steps of: assigning a rank to eachcommunicating entity and conversational personality; in each responsefile, storing information related to the communicating entity orconversational personality responsible for creating or last editing theraw response contained in said response file, said information includingthe rank; and upon discovering multiple raw responses associated with agiven core meaning, determining which of said raw responses has thehighest rank associated therewith.

10. The method according to embodiments 1-9, wherein the step ofprocessing the at least one object further comprises the steps of:maintaining a set of object files containing information associated withall objects encountered by the target personality, each object filecontaining at least one of an object name, an object taxonomy, and anobject attribute; and for each object contained in at least one of thecore meaning and raw response: determining whether the object is new orwhether the object has been encountered before by the targetpersonality; upon determining that the object has been encounteredbefore: updating the object file associated with the object as neededwith any relevant information contained in at least one of the coremeaning and raw response; and upon determining that the object is new:creating a new object file for the object; populating the new objectfile with any relevant information contained in at least one of the coremeaning and raw response; and upon determining that the object is asubset of a pre-existing object, populating at least one of the objecttaxonomy and object attribute of the new object file with all relevantinformation associated with the pre-existing object.

11. The method according to embodiments 1-10, further comprising thesteps of: creating and maintaining an object file for each of the atleast one communicating entity; and upon the target personalityreceiving an initial conversational input from a one of the at least onecommunicating entity: determining whether the communicating entity hasbeen encountered before by the target personality; upon determining thatthe communicating entity is new: creating a new object file for thecommunicating entity; prompting the communicating entity for relevantinformation related to said entity; and populating the new object filewith any relevant information obtained from the communicating entity;upon determining that the communicating entity has been encounteredbefore: accessing the object file associated with the communicatingentity; and verifying the identity of the communicating entity; andupdating the object file associated with the communicating entity asneeded with any relevant information contained in at least oneconversational input.

12. The method according to embodiments 1-11,wherein the step ofverifying the identity of the communicating entity further comprises thestep of prompting the communicating entity with an at least onevalidation question based on at least one of the relevant informationcontained in the associated object file and details contained in pastconversations between the target personality and the communicatingentity.

13. The method according to embodiments 1-12, further comprising thesteps of: encrypting the relevant information contained in the at leastone object file associated with the at least one communicating entityusing a unique encryption key; upon verifying the identity of thecommunicating entity, determining whether the communicating entity is inpossession of a corresponding decryption key; and using the decryptionkey to decrypt the relevant information contained in the associatedobject file in order to utilize that information as appropriate whileinteracting with the communicating entity.

14. The method according to embodiments 1-13, further comprising thestep of providing at least one of the target personality andconversational personality access to one or more supplemental datasources for selectively increasing the knowledge base of saidpersonality.

15. The method according to embodiments 1-14, further comprising thesteps of, upon the target personality receiving a conversational inputhaving a response that requires research: transmitting a non-committalresponse to the communicating entity and continuing the conversationtherewith; initiating a second thread for performing the necessaryresearch via the supplemental data sources; and upon concluding theresearch, interrupting the conversation and transmitting the researchedresponse to the communicating entity.

16. A method for creating and implementing an artificially intelligentagent residing in memory on an at least one computing device andconfigured for taking appropriate action in response to an at least oneconversational input, the method comprising the steps of: implementing atarget personality of the agent in memory on the at least one computingdevice; implementing an at least one artificially intelligentconversational personality in memory on the at least one computingdevice, each conversational personality configured for conversing withthe target personality as needed in order to provide the targetpersonality with appropriate knowledge and associated responses;implementing an at least one teacher personality in memory on the atleast one computing device, each teacher personality configured forfunctioning as a communicating entity by transmitting to the targetpersonality a set of pre-defined conversational inputs so that thetarget personality may learn how to appropriately respond to theconversational inputs through interacting with and receiving appropriateresponses from the at least one conversational personality; allowing anat least one communicating entity to interact with the targetpersonality by receiving the at least one conversational input from thecommunicating entity; and for each conversational input received by thetarget personality: processing the conversational input to derive an atleast one core meaning associated therewith; determining an appropriateraw response for the at least one core meaning; formatting the rawresponse; and transmitting the formatted response to the communicatingentity; whereby, the target personality of the agent is capable ofcarrying on a conversation, even if one or more responses provided bythe target personality are obtained in real-time from the at least oneconversational personality, all while dynamically increasing theartificial intelligence of the target personality.

17. A system for creating and implementing an artificially intelligentagent residing in memory on an at least one computing device, the systemcomprising: a target personality residing in memory on the at least onecomputing device and comprising a pre-processor, a logic processor, anda post-processor, the target personality configured for interacting withan at least one communicating entity through responding to an at leastone conversational input received therefrom; the pre-processorconfigured for processing each conversational input to derive an atleast one core meaning associated therewith; the logic processorconfigured for determining an appropriate raw response for the at leastone core meaning; the post-processor configured for formatting the rawresponse; an at least one artificially intelligent conversationalpersonality residing in memory on the at least one computing device,each conversational personality configured for conversing with thetarget personality as needed in order to provide the target personalitywith appropriate knowledge and associated responses; an at least oneteacher personality residing in memory on the at least one computingdevice, each teacher personality configured for transmitting to thetarget personality a set of pre-defined conversational inputs so thatthe target personality may learn how to appropriately respond to theconversational inputs through interacting with and receiving appropriateresponses from the at least one conversational personality; wherein,upon the target personality receiving said at least one conversationalinput, the target personality is configured for: for each conversationalinput received by the target personality: processing the conversationalinput to derive an at least one core meaning associated therewith;determining an appropriate raw response for the at least one coremeaning; formatting the raw response; and transmitting the formattedresponse to the communicating entity; whereby, the target personality iscapable of carrying on a conversation, even if one or more responsesprovided by the target personality are obtained in real-time from the atleast one conversational personality, all while dynamically increasingthe artificial intelligence of the target personality.

18. The system according to embodiment 17, wherein the system is furtherconfigured for: choosing a desired personality type for the targetpersonality; and selecting one or more appropriate conversationalpersonalities with which the target personality should communicate,based on the desired personality type for the target personality.

19. The system according to embodiments 17-18, wherein the system isfurther configured for selecting an appropriate teacher personality withwhich the target personality should communicate, based on the desiredpersonality type for the target personality.

20. The system according to embodiments 17-19, wherein the at least onecommunicating entity is a human user.

21. The system according to embodiments 17-20, wherein the system isfurther configured for: maintaining a relational list of allconversational inputs encountered by the target personality along withthe core meanings associated with each such conversational input;removing any punctuation from the conversational input; removing anylanguage from the conversational input that is determined to have nobearing on the core meaning; and mapping the conversational input to theassociated core meaning stored in the relational list.

22. The system according to embodiments 17-21, wherein the system isfurther configured for, for each core meaning associated with theconversational input: upon determining that the core meaning contains anat least one object, processing said at least one object; maintaining aset of response files containing all core meanings encountered by thetarget personality along with the raw responses associated with eachsuch core meaning; determining whether the core meaning is new orwhether the core meaning has been encountered before by the targetpersonality; upon determining that the core meaning has been encounteredbefore: mapping the core meaning to the at least one associated rawresponse stored in the response files; and determining which of the atleast one associated raw response is the most appropriate; and upondetermining that the core meaning is new: transmitting the core meaningto the at least one conversational personality; receiving an at leastone raw response from the conversational personality; determining whichof the at least one raw response is the most appropriate; adding thecore meaning and associated raw response deemed most appropriate to theresponse files; and upon determining that the raw response contains anat least one object, processing said at least one object.

23. The system according to embodiments 17-22, wherein the system isfurther configured for: storing in the set of response files a moodvalue associated with each raw response, said mood value indicating thetype of emotion that is to accompany the associated raw response; andmodifying the raw response to reflect the type of emotion defined by themood value.

24. The system according to embodiments 17-23, wherein the system isfurther configured for: storing in the set of response files a weightvalue associated with the mood value of each raw response, said weightvalue indicating the strength of appropriate mood that is to accompanythe associated raw response; and modifying the raw response to reflectthe strength of appropriate mood defined by the weight value.

25. The system according to embodiments 17-24, wherein the system isfurther configured for: assigning a rank to each communicating entityand conversational personality; in each response file, storinginformation related to the communicating entity or conversationalpersonality responsible for creating or last editing the raw responsecontained in said response file, said information including the rank;and upon discovering multiple raw responses associated with a given coremeaning, determining which of said raw responses has the highest rankassociated therewith.

26. The system according to embodiments 17-25, wherein the system isfurther configured for: maintaining a set of object files containinginformation associated with all objects encountered by the targetpersonality, each object file containing at least one of an object name,an object taxonomy, and an object attribute; and for each objectcontained in at least one of the core meaning and raw response:determining whether the object is new or whether the object has beenencountered before by the target personality; upon determining that theobject has been encountered before: updating the object file associatedwith the object as needed with any relevant information contained in atleast one of the core meaning and raw response; and upon determiningthat the object is new: creating a new object file for the object;populating the new object file with any relevant information containedin at least one of the core meaning and raw response; and upondetermining that the object is a subset of a pre-existing object,populating at least one of the object taxonomy and object attribute ofthe new object file with all relevant information associated with thepre-existing object.

27. The system according to embodiments 17-26, wherein the system isfurther configured for: creating and maintaining an object file for eachof the at least one communicating entity; and upon the targetpersonality receiving an initial conversational input from a one of theat least one communicating entity: determining whether the communicatingentity has been encountered before by the target personality; upondetermining that the communicating entity is new: creating a new objectfile for the communicating entity; prompting the communicating entityfor relevant information related to said entity; and populating the newobject file with any relevant information obtained from thecommunicating entity; upon determining that the communicating entity hasbeen encountered before: accessing the object file associated with thecommunicating entity; and verifying the identity of the communicatingentity; and updating the object file associated with the communicatingentity as needed with any relevant information contained in at least oneconversational input.

28. The system according to embodiments 17-27, wherein the system isfurther configured for prompting the communicating entity with an atleast one validation question based on at least one of the relevantinformation contained in the associated object file and detailscontained in past conversations between the target personality and thecommunicating entity.

29. The system according to embodiments 17-28, wherein the system isfurther configured for: encrypting the relevant information contained inthe at least one object file associated with the at least onecommunicating entity using a unique encryption key; upon verifying theidentity of the communicating entity, determining whether thecommunicating entity is in possession of a corresponding decryption key;and using the decryption key to decrypt the relevant informationcontained in the associated object file in order to utilize thatinformation as appropriate while interacting with the communicatingentity.

30. The system according to embodiments 17-29, wherein the system isfurther configured for providing at least one of the target personalityand conversational personality access to one or more supplemental datasources for selectively increasing the knowledge base of saidpersonality.

31. The system according to embodiments 17-30, wherein the system isfurther configured for, upon the target personality receiving aconversational input having a response that requires research:transmitting a non-committal response to the communicating entity andcontinuing the conversation therewith; initiating a second thread forperforming the necessary research via the supplemental data sources; andupon concluding the research, interrupting the conversation andtransmitting the researched response to the communicating entity.

In closing, regarding the exemplary embodiments of the present inventionas shown and described herein, it will be appreciated that systems andmethods for creating and implementing an artificially intelligent agentor system are disclosed. Because the principles of the invention may bepracticed in a number of configurations beyond those shown anddescribed, it is to be understood that the invention is not in any waylimited by the exemplary embodiments, but is generally directed tosystems and methods for creating and implementing an artificiallyintelligent agent or system and is able to take numerous forms to do sowithout departing from the spirit and scope of the invention.Furthermore, the various features of each of the above-describedembodiments may be combined in any logical manner and are intended to beincluded within the scope of the present invention.

Groupings of alternative embodiments, elements, or steps of the presentinvention are not to be construed as limitations. Each group member maybe referred to and claimed individually or in any combination with othergroup members disclosed herein. It is anticipated that one or moremembers of a group may be included in, or deleted from, a group forreasons of convenience and/or patentability. When any such inclusion ordeletion occurs, the specification is deemed to contain the group asmodified thus fulfilling the written description of all Markush groupsused in the appended claims.

Unless otherwise indicated, all numbers expressing a characteristic,item, quantity, parameter, property, term, and so forth used in thepresent specification and claims are to be understood as being modifiedin all instances by the term “about.” As used herein, the term “about”means that the characteristic, item, quantity, parameter, property, orterm so qualified encompasses a range of plus or minus ten percent aboveand below the value of the stated characteristic, item, quantity,parameter, property, or term. Accordingly, unless indicated to thecontrary, the numerical parameters set forth in the specification andattached claims are approximations that may vary. At the very least, andnot as an attempt to limit the application of the doctrine ofequivalents to the scope of the claims, each numerical indication shouldat least be construed in light of the number of reported significantdigits and by applying ordinary rounding techniques. Notwithstandingthat the numerical ranges and values setting forth the broad scope ofthe invention are approximations, the numerical ranges and values setforth in the specific examples are reported as precisely as possible.Any numerical range or value, however, inherently contains certainerrors necessarily resulting from the standard deviation found in theirrespective testing measurements. Recitation of numerical ranges ofvalues herein is merely intended to serve as a shorthand method ofreferring individually to each separate numerical value falling withinthe range. Unless otherwise indicated herein, each individual value of anumerical range is incorporated into the present specification as if itwere individually recited herein.

The terms “a,” “an,” “the” and similar referents used in the context ofdescribing the present invention (especially in the context of thefollowing claims) are to be construed to cover both the singular and theplural, unless otherwise indicated herein or clearly contradicted bycontext. All methods described herein can be performed in any suitableorder unless otherwise indicated herein or otherwise clearlycontradicted by context. The use of any and all examples, or exemplarylanguage (e.g., “such as”) provided herein is intended merely to betterilluminate the present invention and does not pose a limitation on thescope of the invention otherwise claimed. No language in the presentspecification should be construed as indicating any non-claimed elementessential to the practice of the invention.

Specific embodiments disclosed herein may be further limited in theclaims using consisting of or consisting essentially of language. Whenused in the claims, whether as filed or added per amendment, thetransition term “consisting of” excludes any element, step, oringredient not specified in the claims. The transition term “consistingessentially of” limits the scope of a claim to the specified materialsor steps and those that do not materially affect the basic and novelcharacteristic(s). Embodiments of the present invention so claimed areinherently or expressly described and enabled herein.

It should be understood that the logic code, programs, modules,processes, methods, and the order in which the respective elements ofeach method are performed are purely exemplary. Depending on theimplementation, they may be performed in any order or in parallel,unless indicated otherwise in the present disclosure. Further, the logiccode is not related, or limited to any particular programming language,and may comprise one or more modules that execute on one or moreprocessors in a distributed, non-distributed, or multiprocessingenvironment.

The methods as described above may be used in the fabrication ofintegrated circuit chips. The resulting integrated circuit chips can bedistributed by the fabricator in raw wafer form (that is, as a singlewafer that has multiple unpackaged chips), as a bare die, or in apackaged form. In the latter case, the chip is mounted in a single chippackage (such as a plastic carrier, with leads that are affixed to amotherboard or other higher level carrier) or in a multi-chip package(such as a ceramic carrier that has either or both surfaceinterconnections or buried interconnections). In any case, the chip isthen integrated with other chips, discrete circuit elements, and/orother signal processing devices as part of either (a) an intermediateproduct, such as a motherboard, or (b) an end product. The end productcan be any product that includes integrated circuit chips, ranging fromtoys and other low-end applications to advanced computer products havinga display, a keyboard or other input device, and a central processor.

While aspects of the invention have been described with reference to atleast one exemplary embodiment, it is to be clearly understood by thoseskilled in the art that the invention is not limited thereto. Rather,the scope of the invention is to be interpreted only in conjunction withthe appended claims and it is made clear, here, that the inventor(s)believe that the claimed subject matter is the invention.

What is claimed is:
 1. A method for creating and implementing anartificially intelligent agent residing in memory on an at least onecomputing device and configured for taking an action in response to anat least one conversational input, the method comprising the steps of:implementing a target personality of the agent in memory on the at leastone computing device; implementing an at least one artificiallyintelligent conversational personality in memory on the at least onecomputing device, each conversational personality configured forconversing with the target personality as needed in order to provide thetarget personality with knowledge and associated responses; allowing anat least one communicating entity to interact with the targetpersonality by receiving the at least one conversational input from thecommunicating entity; and for each conversational input received by thetarget personality: processing the conversational input to derive an atleast one core meaning associated therewith; determining a raw responsecorresponding to each core meaning associated with the conversationalinput by: determining that the core meaning contains an at least oneobject, processing said at least one object; maintaining a set ofresponse files containing all core meanings encountered by the targetpersonality along with the raw responses associated with each such coremeaning; determining whether the core meaning is new or whether the coremeaning has been encountered before by the target personality; upondetermining that the core meaning has been encountered before: mappingthe core meaning to the at least one associated raw response stored inthe response files; and determining which of the at least one associatedraw response is the most appropriate; and upon determining that the coremeaning is new: transmitting the core meaning to the at least oneconversational personality; receiving an at least one raw response fromthe conversational personality; determining which of the at least oneraw response is the most appropriate; adding the core meaning andassociated raw response deemed most appropriate to the response files;and upon determining that the raw response contains an at least oneobject, processing said at least one object; whereby, the targetpersonality of the agent is capable of carrying on a conversation, evenif one or more responses provided by the target personality are obtainedin real-time from the at least one conversational personality, all whiledynamically increasing the artificial intelligence of the targetpersonality.
 2. The method of claim 1, further comprising the steps of:choosing a desired personality type for the target personality; andselecting one or more appropriate conversational personalities withwhich the target personality should communicate, based on the desiredpersonality type for the target personality.
 3. The method of claim 2,wherein the step of allowing an at least one communicating entity tointeract with the target personality further comprises the steps of:implementing an at least one teacher personality in memory on the atleast one computing device, each teacher personality configured fortransmitting to the target personality a set of pre-definedconversational inputs so that the target personality may learn how toappropriately respond to the conversational inputs through interactingwith and receiving appropriate responses from the at least oneconversational personality; and selecting an appropriate teacherpersonality with which the target personality should communicate, basedon the desired personality type for the target personality.
 4. Themethod of claim 1, wherein the step of allowing an at least onecommunicating entity to interact with the target personality furthercomprises the step of allowing an at least one human user to selectivelytransmit to the target personality the at least one conversationalinput.
 5. The method of claim 1, wherein the step of processing theconversational input further comprises the steps of: maintaining arelational list of all conversational inputs encountered by the targetpersonality along with the core meanings associated with each suchconversational input; removing any punctuation from the conversationalinput; removing any language from the conversational input that isdetermined to have no bearing on the core meaning; and mapping theconversational input to the associated core meaning stored in therelational list.
 6. The method of claim 1, further comprising the stepsof: storing in the set of response files a mood value associated witheach raw response, said mood value indicating the type of emotion thatis to accompany the associated raw response; and modifying the rawresponse to reflect the type of emotion defined by the mood value. 7.The method of claim 6, further comprising the steps of: storing in theset of response files a weight value associated with the mood value ofeach raw response, said weight value indicating the strength ofappropriate mood that is to accompany the associated raw response; andmodifying the raw response to reflect the strength of appropriate mooddefined by the weight value.
 8. The method of claim 1, wherein the stepof determining which of the at least one raw response is the mostappropriate further comprises the steps of: assigning a rank to eachcommunicating entity and conversational personality; in each responsefile, storing information related to the communicating entity orconversational personality responsible for creating or last editing theraw response contained in said response file, said information includingthe rank; and upon discovering multiple raw responses associated with agiven core meaning, determining which of said raw responses has thehighest rank associated therewith.
 9. The method of claim 1, wherein thestep of processing the at least one object further comprises the stepsof: maintaining a set of object files containing information associatedwith all objects encountered by the target personality, each object filecontaining at least one of an object name, an object taxonomy, and anobject attribute; and for each object contained in at least one of thecore meaning and raw response: determining whether the object is new orwhether the object has been encountered before by the targetpersonality; upon determining that the object has been encounteredbefore: updating the object file associated with the object as neededwith any relevant information contained in at least one of the coremeaning and raw response; and upon determining that the object is new:creating a new object file for the object; populating the new objectfile with any relevant information contained in at least one of the coremeaning and raw response; and upon determining that the object is asubset of a pre-existing object, populating at least one of the objecttaxonomy and object attribute of the new object file with all relevantinformation associated with the pre-existing object.
 10. The method ofclaim 9, further comprising the steps of: creating and maintaining anobject file for each of the at least one communicating entity; and uponthe target personality receiving an initial conversational input from aone of the at least one communicating entity: determining whether thecommunicating entity has been encountered before by the targetpersonality; upon determining that the communicating entity is new:creating a new object file for the communicating entity; prompting thecommunicating entity for relevant information related to said entity;and populating the new object file with any relevant informationobtained from the communicating entity; upon determining that thecommunicating entity has been encountered before: accessing the objectfile associated with the communicating entity; and verifying theidentity of the communicating entity; and updating the object fileassociated with the communicating entity as needed with any relevantinformation contained in at least one conversational input.
 11. Themethod of claim 10, wherein the step of verifying the identity of thecommunicating entity further comprises the step of prompting thecommunicating entity with an at least one validation question based onat least one of the relevant information contained in the associatedobject file and details contained in past conversations between thetarget personality and the communicating entity.
 12. The method of claim10, further comprising the steps of: encrypting the relevant informationcontained in the at least one object file associated with the at leastone communicating entity using a unique encryption key; upon verifyingthe identity of the communicating entity, determining whether thecommunicating entity is in possession of a corresponding decryption key;and using the decryption key to decrypt the relevant informationcontained in the associated object file in order to utilize thatinformation as appropriate while interacting with the communicatingentity.
 13. The method of claim 1, further comprising the step ofproviding at least one of the target personality and conversationalpersonality access to one or more supplemental data sources forselectively increasing the knowledge base of said personality.
 14. Themethod of claim 13, further comprising the steps of, upon the targetpersonality receiving a conversational input having a response thatrequires research: transmitting a non-committal response to thecommunicating entity and continuing the conversation therewith;initiating a second thread for performing the necessary research via thesupplemental data sources; and upon concluding the research,interrupting the conversation and transmitting the researched responseto the communicating entity.
 15. A method for creating and implementingan artificially intelligent agent residing in memory on an at least onecomputing device and configured for taking an action in response to anat least one conversational input, the method comprising the steps of:implementing a target personality of the agent in memory on the at leastone computing device; implementing an at least one artificiallyintelligent conversational personality in memory on the at least onecomputing device, each conversational personality configured forconversing with the target personality as needed in order to provide thetarget personality with knowledge and associated responses; allowing anat least one communicating entity to interact with the targetpersonality by receiving the at least one conversational input from thecommunicating entity; implementing an at least one teacher personalityin memory on the at least one computing device, each teacher personalityconfigured for functioning as a communicating entity by transmitting tothe target personality a set of pre-defined conversational inputs sothat the target personality may learn how to appropriately respond tothe conversational inputs through interacting with and receivingappropriate responses from the at least one conversational personality;and for each conversational input received by the target personality:processing the conversational input to derive an at least one coremeaning associated therewith; determining a raw response correspondingto each core meaning associated with the conversational input by:determining that the core meaning contains an at least one object,processing said at least one object; maintaining a set of response filescontaining all core meanings encountered by the target personality alongwith the raw responses associated with each such core meaning;determining whether the core meaning is new or whether the core meaninghas been encountered before by the target personality; upon determiningthat the core meaning has been encountered before: mapping the coremeaning to the at least one associated raw response stored in theresponse files; and determining which of the at least one associated rawresponse is the most appropriate; and upon determining that the coremeaning is new: transmitting the core meaning to the at least oneconversational personality; receiving an at least one raw response fromthe conversational personality; determining which of the at least oneraw response is the most appropriate; adding the core meaning andassociated raw response deemed most appropriate to the response files;and upon determining that the raw response contains an at least oneobject, processing said at least one object; whereby, the targetpersonality of the agent is capable of carrying on a conversation, evenif one or more responses provided by the target personality are obtainedin real-time from the at least one conversational personality, all whiledynamically increasing the artificial intelligence of the targetpersonality.
 16. A system for creating and implementing an artificiallyintelligent agent residing in memory on an at least one computingdevice, the system comprising: a target personality residing in memoryon the at least one computing device and comprising a pre-processor, alogic processor, and a post-processor, the target personality configuredfor interacting with an at least one communicating entity throughresponding to an at least one conversational input received therefrom;the pre-processor configured for processing each conversational input toderive an at least one core meaning associated therewith; the logicprocessor configured for determining a corresponding raw response forthe at least one core meaning; the post-processor configured forformatting the raw response; an at least one artificially intelligentconversational personality residing in memory on the at least onecomputing device, each conversational personality configured forconversing with the target personality as needed in order to provide thetarget personality with knowledge and associated responses; an at leastone teacher personality residing in memory on the at least one computingdevice, each teacher personality configured for transmitting to thetarget personality a set of pre-defined conversational inputs so thatthe target personality may learn how to respond to the conversationalinputs through interacting with and receiving corresponding responsesfrom the at least one conversational personality; wherein, upon thetarget personality receiving said at least one conversational input, thetarget personality is configured for: for each conversational inputreceived by the target personality: processing the conversational inputto derive an at least one core meaning associated therewith; determininga raw response corresponding to each core meaning associated with theconversational input by: determining that the core meaning contains anat least one object, processing said at least one object; maintaining aset of response files containing all core meanings encountered by thetarget personality along with the raw responses associated with eachsuch core meaning; determining whether the core meaning is new orwhether the core meaning has been encountered before by the targetpersonality; upon determining that the core meaning has been encounteredbefore: mapping the core meaning to the at least one associated rawresponse stored in the response files; and determining which of the atleast one associated raw response is the most appropriate; and upondetermining that the core meaning is new: transmitting the core meaningto the at least one conversational personality; receiving an at leastone raw response from the conversational personality; determining whichof the at least one raw response is the most appropriate; adding thecore meaning and associated raw response deemed most appropriate to theresponse files; and upon determining that the raw response contains anat least one object, processing said at least one object; whereby, thetarget personality is capable of carrying on a conversation, even if oneor more responses provided by the target personality are obtained inreal-time from the at least one conversational personality, all whiledynamically increasing the artificial intelligence of the targetpersonality.